using System;
using System.Device.Location;
using SydEnergiPrototype.DataRepositoryServiceRef;
using SydEnergiPrototype.Logic;
using SydEnergiPrototype.Model;

namespace SydEnergiPrototypeUnitTest.DataAccessTest
{
    public class FactoryMock : IFactory
    {
        public bool CreateDataRepositoryClientWasCalled = false;
        public bool CreateCabinetDtoWasCalled = false;
        public bool CreateCabinetWasCalled = false;

        public object CreateFromType(Type t)
        {
            throw new NotImplementedException();
        }

        public IEntry CreateEntry()
        {
            throw new NotImplementedException();
        }

        public History CreateHistory()
        {
            throw new NotImplementedException();
        }

        public IAddress CreateAddress()
        {
            throw new NotImplementedException();
        }

        public SerializableEntry CreateSerializableEntry()
        {
            throw new NotImplementedException();
        }

        public IDataRepositoryService CreateDataRepositoryClient()
        {
            CreateDataRepositoryClientWasCalled = true;
            return new DataRepositoryClientMock();
        }

        public AddressDto CreateAddressDto()
        {
            throw new NotImplementedException();
        }

        public CabinetDto CreateCabinetDto()
        {
            CreateCabinetDtoWasCalled = true;
            return new CabinetDto();
        }

        public ICabinet CreateCabinet(string id, IAddress address, GeoCoordinate position)
        {
            CreateCabinetWasCalled = true;
            return new Cabinet(id, address, position);
        }
    }
}